perm filename DIVTST.IL[TIM,LSP] blob
sn#722266 filedate 1983-07-28 generic text, type T, neo UTF8
(FILECREATED "19-JUL-83 01:18:00" {PHYLUM}<GABRIEL>DIVTST.;1 2497
changes to: (VARS DIVTSTCOMS)
(PROPS (ALPHAPASSWORD GLOBALVAR))
(FNS HASH.PASSWORD.16 HASH.PASSWORD.29 QT1 QT2))
(* Copyright (c) 1983 by Xerox Corporation)
(PRETTYCOMPRINT DIVTSTCOMS)
(RPAQQ DIVTSTCOMS ((VARS (ALPHAPASSWORD "ABCDEFGHIJKLMNOPQRSTUVWXYZ"))
(PROP GLOBALVAR ALPHAPASSWORD)
(FNS HASH.PASSWORD.16 HASH.PASSWORD.29 QT1 QT2)))
(RPAQ ALPHAPASSWORD "ABCDEFGHIJKLMNOPQRSTUVWXYZ")
(PUTPROPS ALPHAPASSWORD GLOBALVAR T)
(DEFINEQ
(HASH.PASSWORD.16
(LAMBDA (PASSWORD) (* JonL "19-JUL-83 00:57")
(* Compute remainder mod 16381 of PASSWORD considered as an arbitrary length integer base 2↑14, whose digits
εβ(from most to least significant) are the characters in PASSWORD. Uses Horner's rule and properties of modular ε↓
εβarithmetic to do it efficiently. 16381 is the largest prime less than 2↑14. Intermediate results may require 16 ε↓
εβbits (e.g., the result of the ITIMES))ε↓
(εαbindε↓ (HASH ← 0) εαforε↓ CHAR εαinstringε↓ (MKSTRING PASSWORD)
εαdoε↓ (SETQ HASH (IMOD (IPLUS (ITIMES HASH (CONSTANT (IMOD (EXPT 2 14)
16381)))
CHAR)
16381))
εαfinallyε↓ (RETURN HASH))))
(ε∧HASH.PASSWORD.29ε↓
(LAMBDA (PASSWORD) εβ(* JonL "19-JUL-83 01:12")ε↓
εβ(* Compute remainder mod 67108859 of PASSWORD considered as an arbitrary length integer base 2↑26, whose digits ε↓
εβ(from most to least significant) are the characters in PASSWORD. Uses Horner's rule and properties of modular ε↓
εβarithmetic to do it efficiently. 67108859 is the largest prime less than 2↑26. Intermediate results may require 29ε↓
εβbits (e.g., the result of the ITIMES))ε↓
(εαbindε↓ (HASH ← 0) εαforε↓ CHAR εαinstringε↓ (MKSTRING PASSWORD)
εαdoε↓ (SETQ HASH (IMOD (IPLUS (ITIMES HASH (CONSTANT (IMOD (EXPT 2 26)
67108859)))
CHAR)
67108859))
εαfinallyε↓ (RETURN HASH))))
(ε∧QT1ε↓
(LAMBDA NIL εβ(* JonL "19-JUL-83 00:18")ε↓
(TIMEALL (εαHASH.PASSWORD.16ε↓ ALPHAPASSWORD)
1000)))
(ε∧QT2ε↓
(LAMBDA NIL εβ(* JonL "19-JUL-83 01:17")ε↓
(TIMEALL (εαHASH.PASSWORD.29ε↓ ALPHAPASSWORD)
1000)))
)
(PUTPROPS DIVTST COPYRIGHT ("Xerox Corporation" 1983))
(DECLARE: DONTCOPY
(FILEMAP (NIL (545 2420 (HASH.PASSWORD.16 555 . 1314) (HASH.PASSWORD.29 1316 . 2086) (QT1 2088 . 2252)
(QT2 2254 . 2418)))))
STOP